// pages/myCenter/editor/shopImg/index.js
import Common from '../../../../common/common.js';
let common = new Common;
const app = getApp();
let cropper = null;
Page({

  /**
   * 页面的初始数据
   */
  data: {
    array: ['拍照', '从手机相册选择', '保存门头照', '取消'],
    imagePath:'',//图片裁剪返回路径
    hidden:0,
  },
  
  bindPickerChange: function(e) {
    console.log('picker发送选择改变，携带值为', e.detail.value,e)
    var that = this;
    // 0 拍照  1从手机相册选取  2保存图片  3 取消
    if(e.detail.value==0){
      wx.chooseImage({
        count: 1,
        sizeType: ['original', 'compressed'],
        sourceType: ['camera'],
        success(res) {
          // tempFilePath可以作为img标签的src属性显示图片
          const tempFilePaths = res.tempFilePaths[0];
          that.setData({
            imagePath:tempFilePaths,
            hidden:1
          })
          //调用图片裁剪组件
          that.crop();
        },
        fail(res){
          console.log(res)
        }
      })
    }else if(e.detail.value==1){
      wx.chooseImage({
        count: 1,
        sizeType: ['original', 'compressed'],
        sourceType: ['album'],
        success(res) {
          // tempFilePath可以作为img标签的src属性显示图片
          const tempFilePaths = res.tempFilePaths[0];
          that.setData({
            imagePath:tempFilePaths,
            hidden:1
          })
          //调用图片裁剪组件
          that.crop();
        },
        fail(res){
          console.log(res)
        }
      })
    }else if(e.detail.value==2){
        this.saveImg();
    }
  },
  // 保存图片
  saveImg:function(e){
    let that = this;

    //获取相册授权
    wx.getSetting({
      success(res) {
        if (!res.authSetting['scope.writePhotosAlbum']) {
          wx.authorize({
            scope: 'scope.writePhotosAlbum',
            success() {
              //这里是用户同意授权后的回调
              that.saveImgToLocal();
            },
            fail() {//这里是用户拒绝授权后的回调
            
            }
          })
        } else {//用户已经授权过了
          that.saveImgToLocal();
        }
      }
    })

  },
  saveImgToLocal: function (e) {
    let that = this;
    wx.showLoading({
      title: '保存中...',
    })
    let imgSrc = that.data.imagePath.replace(':443','');
    wx.downloadFile({
      url: imgSrc,
      success: function (res) {
        console.log(res);
        //图片保存到本地
        wx.saveImageToPhotosAlbum({
          filePath: res.tempFilePath,
          success: function (data) {
            wx.hideLoading(); 
            wx.showToast({
              title: '保存成功',
              icon: 'success',
              duration: 2000
            })
          },
        })
      }
    })

  },

  // 授权
  handleSetting: function (e) {
    let that = this;
    // 对用户的设置进行判断，如果没有授权，即使用户返回到保存页面，显示的也是“去授权”按钮；同意授权之后才显示保存按钮

    if (!e.detail.authSetting['scope.writePhotosAlbum']) {
      // wx.showModal({
      //   title: '警告',
      //   content: '若不打开授权，则无法将图片保存在相册中！',
      //   showCancel: false
      // })
    } else {
      // wx.showModal({
      //   title: '提示',
      //   content: '您已授权，赶紧将图片保存在相册中吧！',
      //   showCancel: false
      // })
    }
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
  },
////////  cancel ///////////////////
crop:function(e){
     cropper = this.selectComponent('#cropper');
    cropper.fnInit({
      imagePath:this.data.imagePath,       //*必填
      debug: true,                        //可选。是否启用调试，默认值为false。true：打印过程日志；false：关闭过程日志
      outputFileType: 'jpg',              //可选。目标文件的类型。默认值为jpg，jpg：输出jpg格式图片；png：输出png格式图片
      quality: 1,                         //可选。图片的质量。默认值为1，即最高质量。目前仅对 jpg 有效。取值范围为 (0, 1]，不在范围内时当作 1.0 处理。
      aspectRatio: 1.1,                  //可选。裁剪的宽高比，默认null，即不限制剪裁宽高比。aspectRatio需大于0
      minBoxWidthRatio: 0.2,              //可选。最小剪裁尺寸与原图尺寸的比率，默认0.15，即宽度最小剪裁到原图的0.15宽。
      minBoxHeightRatio: 0.2,             //可选。同minBoxWidthRatio，当设置aspectRatio时，minBoxHeight值设置无效。minBoxHeight值由minBoxWidth 和 aspectRatio自动计算得到。
      initialBoxWidthRatio: 0.6,          //可选。剪裁框初始大小比率。默认值0.6，即剪裁框默认宽度为图片宽度的0.6倍。
      initialBoxHeightRatio: 0.6          //可选。同initialBoxWidthRatio，当设置aspectRatio时，initialBoxHeightRatio值设置无效。initialBoxHeightRatio值由initialBoxWidthRatio 和 aspectRatio自动计算得到。
      });

},
fnCancel:function(){
  var that = this;
  console.log('cancel')
  //todo something
  that.setData({
    hidden:0
  })
},

////////// do crop ////////////////////
fnSubmit:function(){
  var that = this;
  cropper.fnCrop({
    //剪裁成功的回调
    success:function(res){
      that.setData({
        hidden:0
      })
    },
    //剪裁失败的回调
    fail:function(res){
      console.log(res,'失败');
      that.setData({
        hidden:0
      })
    },
    //剪裁结束的回调
    complete:function(res){
      that.setData({
        hidden:0
      })
      that.uploadFile(res.tempFilePath)
      
    }
  });
},
// 图片上传
uploadFile:function(file){
  let that = this
  wx.showLoading({
    title: '上传中...', 
    icon: 'loading'
  }) 
  console.log('上传的本地路径',file);
  wx.uploadFile({
    url: `${common.requestApi}/api/file-service/v1/file/uploadFile`,
    filePath: file,
    header: {
      "token": wx.getStorageSync('token')
    },
    name: 'file',
    formData: {},
    success: (res) => {  
      let data = JSON.parse(res.data);
      console.log(res.data.result,'图片')
      console.log(data.result,res)
      that.setData({
        imagePath:data.result
      })
      that.updateStoreCardConfig();
      wx.hideLoading();
    },
    fail: (err) => {
      console.log(res)
      // wx.showToast({
      //   title: '图片上传失败,请重试！',
      //   icon: "none"
      // })
    }
  })
},
// 查询门头照片
queryStoreCardConfig:function(e){
  let data = {
    orgSeq:getApp().globalData.orgSeq,
      userId: app.globalData.userId,
  }
  common.requestAjax('/api/user-service/v1/StoreCard/queryStoreCardConfig', 'post', data).then(res => {
    console.log(res)
    this.setData({
      imagePath:res.data.result.doorwayPic
    })
  }).catch(err => {
    console.log(err);
  })
},
// 更新门头照片
updateStoreCardConfig:function(e){
  let data={
    doorwayPic:this.data.imagePath,
    orgSeq:getApp().globalData.orgSeq,
    headPicUrl:null,
    userId: app.globalData.userId,
  }
  common.requestAjax('/api/user-service/v1/StoreCard/updateStoreCardConfig', 'post', data).then(res => {
    wx.showToast({
      title: '门头照片更新成功！',
      icon:'none'
    })
    getApp().globalData.shopInfo.doorwayPic=this.data.imagePath;
    getApp().globalData.defaultShopInfo.doorwayPic=this.data.imagePath;
    setTimeout(()=>{
      wx.navigateBack({})
    },2000)
   
  }).catch(err => {
    console.log(err);
  })
},

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    this.queryStoreCardConfig()
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})